{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# XenonPy-iQSPR tutorial"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This tutorial provides step by step guidance to all the essential components for running iQSPR, an inverse molecular design algorithm based on machine learning. We provide a set of in-house data and pre-trained models for demonstration purpose. We reserve all rights for using these resources outside of this tutorial. We recommend readers to have prior knowledge about python programming, use of numpy and pandas packages, building models with scikit-learn, and understanding on the fundamental functions of XenonPy (refer to the tutorial on the descriptor calculation and model building with XenonPy). For any question, please contact the developer of XenonPy. (v.0.4.1)\n",
    "\n",
    "Overview - We are interested in finding molecular structures 𝑆 such that their properties 𝑌 have a high probability of falling into a target region 𝑈, i.e., we want to sample from the posterior probability 𝑝(𝑆|𝑌∈𝑈) that is proportional to 𝑝(𝑌∈𝑈|𝑆)𝑝(𝑆) by the Bayes’ theorem. 𝑝(𝑌∈𝑈|𝑆) is the likelihood function that can be derived from any machine learning models predicting 𝑌 for a given 𝑆. 𝑝(𝑆) is the prior that represents all possible candidates of S to be considered. iQSPR is a numerical implementation for this Bayesian formulation based on sequential Monte Carlo sampling, which requires a likelihood model and a prior model, to begin with.\n",
    "\n",
    "This tutorial will proceed as follow:\n",
    "1. initial setup and data preparation\n",
    "2. descriptor preparation for forward model (likelihood)\n",
    "3. forward model (likelihood) preparation\n",
    "4. `NGram` (prior) preparation\n",
    "5. a complete iQSPR run"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.4.1'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import xenonpy\n",
    "xenonpy.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Useful functions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we import some basic libraries and functions that are not directly related to the use of iQSPR. You may look into the \"tools.ipynb\" for the content. We also pre-set a numpy random seed for reproducibility. The same seed number is used throughout this tutorial."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/sklearn/externals/joblib/__init__.py:15: DeprecationWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please import this functionality directly from joblib, which can be installed with: pip install joblib. If this warning is raised when loading pickled models, you may need to re-serialize those models with scikit-learn 0.21+.\n",
      "  warnings.warn(msg, category=DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "%run tools.ipynb\n",
    "\n",
    "np.random.seed(201906)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data preparation (in-house data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here is a data set that contains 16674 SMILES randomly selected from pubchem with 2 material properties, the internal energy E (kJ/mol) and the HOMO-LUMO gap (eV). The property values are obtained from single-point calculations in DFT (density functional theory) simulations, with compounds geometry optimized at the B3LYP/6-31G(d) level of theory using GAMESS. This data set is prepared by our previous developers of iQSPR. XenonPy supports pandas dataframe as the main input source. When there are mismatch in the number of data points available in each material property, i.e., there exists missing values, please simply fill in the missing values with NaN, and XenonPy will automatically handle them during model training.\n",
    "\n",
    "You can download the in-house data at https://github.com/yoshida-lab/XenonPy/releases/download/v0.4.1/iQSPR_sample_data.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>SMILES</th>\n",
       "      <th>E</th>\n",
       "      <th>HOMO-LUMO gap</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>CC(=O)OC(CC(=O)[O-])C[N+](C)(C)C</td>\n",
       "      <td>177.577</td>\n",
       "      <td>4.352512</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>CC(=O)OC(CC(=O)O)C[N+](C)(C)C</td>\n",
       "      <td>185.735</td>\n",
       "      <td>7.513497</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>C1=CC(C(C(=C1)C(=O)O)O)O</td>\n",
       "      <td>98.605</td>\n",
       "      <td>4.581348</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>CC(CN)O</td>\n",
       "      <td>83.445</td>\n",
       "      <td>8.034841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>C(C(=O)COP(=O)(O)O)N</td>\n",
       "      <td>90.877</td>\n",
       "      <td>5.741310</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0                            SMILES        E  HOMO-LUMO gap\n",
       "0           1  CC(=O)OC(CC(=O)[O-])C[N+](C)(C)C  177.577       4.352512\n",
       "1           2     CC(=O)OC(CC(=O)O)C[N+](C)(C)C  185.735       7.513497\n",
       "2           3          C1=CC(C(C(=C1)C(=O)O)O)O   98.605       4.581348\n",
       "3           4                           CC(CN)O   83.445       8.034841\n",
       "4           5              C(C(=O)COP(=O)(O)O)N   90.877       5.741310"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# load in-house data\n",
    "data = pd.read_csv(\"./iQSPR_sample_data.csv\")\n",
    "\n",
    "# take a look at the data\n",
    "data.columns\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us visualize some statistics of the data set. We can see that the mean character length of the SMILES is around 30. This roughly corresponds to around 20 tokens in iQSPR due to the way we combine some characters into a single token to be handled during the molecule modification step. Furthermore, the data shows a clear Pareto front at the high HOMO-LUMO gap region and the lack of molecules for HOMO-LUMO gap below 3. In this tutorial, we will try to populate the region of HOMO-LUMO gap less than 3 and internal energy less than 200."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# check the SMILES length\n",
    "count = [len(x) for x in data['SMILES']]\n",
    "plt.hist(count, bins=20)  # arguments are passed to np.histogram\n",
    "plt.title('Histogram for length of SMILES strings')\n",
    "plt.xlabel('SMILES length (counting characters)')\n",
    "plt.ylabel('Counts')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# check target properties: E & HOMO-LUMO gap\n",
    "plt.figure(figsize=(5,5))\n",
    "plt.scatter(data['E'],data['HOMO-LUMO gap'],s=15,c='b',alpha = 0.1)\n",
    "plt.title('iQSPR sample data')\n",
    "plt.xlabel('Internal energy')\n",
    "plt.ylabel('HOMO-LUMO gap')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A complete iQSPR run may take a very long time. For practical purposes, the full design process can be separately done in multiple steps, and we recommend taking advantage of parallel computing if possible. To save time in this tutorial, we will extract only a subset of the full in-house data set for demonstration. You will see that the subset represents the full data set in our target property space well. Readers can try to repeat this tutorial with the full data set if sufficient computing resource is available."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   index  Unnamed: 0                               SMILES        E  \\\n",
      "0  16101       23630            CC(C)CN1CC(C1)C2=CC=CC=C2  193.542   \n",
      "1  13275       19222               C1=CC(=CN=C1)C(=O)OCCO  110.998   \n",
      "2  13879       20189  C1=CC(=CC=C1CC(C(=O)O)N)N(CCCl)CCCl  202.960   \n",
      "3   5313        7775                    CCCCCC(=O)OCC(C)C  191.230   \n",
      "4   8254       11881         C1=CC(=C(C=C1O)C(=O)O)C(=O)O   91.482   \n",
      "\n",
      "   HOMO-LUMO gap  \n",
      "0       5.914093  \n",
      "1       5.186226  \n",
      "2       5.400097  \n",
      "3       7.727368  \n",
      "4       4.856441  \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(201903) # fix the random seed\n",
    "\n",
    "# extract a subset from the full data set\n",
    "data_ss = data.sample(3000).reset_index()\n",
    "print(data_ss.head())\n",
    "\n",
    "# check target properties: E & HOMO-LUMO gap\n",
    "plt.figure(figsize=(5,5))\n",
    "plt.scatter(data['E'],data['HOMO-LUMO gap'],s=15,c='b',alpha = 0.1,label=\"full data\")\n",
    "plt.scatter(data_ss['E'],data_ss['HOMO-LUMO gap'],s=15,c='r',alpha = 0.1,label=\"subset\")\n",
    "plt.legend(loc='upper right')\n",
    "plt.title('iQSPR sample data')\n",
    "plt.xlabel('Internal energy')\n",
    "plt.ylabel('HOMO-LUMO gap')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Descriptor and forward model preparation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "XenonPy provides out-of-the-box fingerprint calculators. We currently support all fingerprints and descriptors in the RDKit (Mordred will be added soon). In this tutorial, we only use the ECFP + MACCS in RDKit. You may combine as many descriptors as you need. We currently support `input_type` to be 'smiles' or 'mols' (the RDKit internal mol format) and some of the basic options in RDKit fingerprints. The output will be a pandas dataframe that is supported scikit-learn when building forward model with various machine learning methods."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from xenonpy.descriptor import Fingerprints\n",
    "\n",
    "RDKit_FPs = Fingerprints(featurizers=['ECFP', 'MACCS'], input_type='smiles')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To get the calculated fingerprints, simply use the transform function. The column names are pre-defined in XenonPy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   maccs:0  maccs:1  maccs:2  maccs:3  maccs:4  maccs:5  maccs:6  maccs:7  \\\n",
      "0        0        0        0        0        0        0        0        0   \n",
      "1        0        0        0        0        0        0        0        0   \n",
      "2        0        0        0        0        0        0        0        0   \n",
      "3        0        0        0        0        0        0        0        0   \n",
      "4        0        0        0        0        0        0        0        0   \n",
      "\n",
      "   maccs:8  maccs:9  ...  ecfp3:2038  ecfp3:2039  ecfp3:2040  ecfp3:2041  \\\n",
      "0        1        0  ...           0           0           0           0   \n",
      "1        0        0  ...           0           0           0           0   \n",
      "2        0        0  ...           0           0           0           0   \n",
      "3        0        0  ...           0           0           0           0   \n",
      "4        0        0  ...           0           0           0           0   \n",
      "\n",
      "   ecfp3:2042  ecfp3:2043  ecfp3:2044  ecfp3:2045  ecfp3:2046  ecfp3:2047  \n",
      "0           0           0           0           0           0           0  \n",
      "1           0           0           0           0           0           0  \n",
      "2           0           0           0           0           0           0  \n",
      "3           0           0           0           0           0           0  \n",
      "4           0           0           0           0           0           0  \n",
      "\n",
      "[5 rows x 2215 columns]\n"
     ]
    }
   ],
   "source": [
    "tmp_FPs = RDKit_FPs.transform(data_ss['SMILES'])\n",
    "print(tmp_FPs.head())\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "XenonPy also allows users to flexibly organize the desired descriptors. The first step is to import `BaseDescriptor` and all necessary descriptors (fingerprints) supported by XenonPy, which will be used to construct a customized set of descriptors for forward prediction. Then, users can simply pack all descriptors needed in the `BaseDescriptor`. For other descriptors, users can use the `BaseFeaturizer` class to construct for their own needs. If so, we would appreciate very much if you could share the code as a contribution to this project: https://github.com/yoshida-lab/XenonPy/tree/master/xenonpy/contrib. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# XenonPy descriptor calculation library\n",
    "from xenonpy.descriptor.base import BaseDescriptor\n",
    "from xenonpy.descriptor import ECFP, MACCS\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Defining your own `BaseDescriptor` allows you to customize the options for each fingerprint you wanted. You may combine multiple descriptors by adding more \"self.XXX\" in the `BaseDescriptor`. All descriptors with the same name \"XXX\" will be concatenated as one long descriptor. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# prepare descriptor function from XenonPy (possible to combine multiple descriptors)\n",
    "class RDKitDesc(BaseDescriptor):\n",
    "    def __init__(self, n_jobs=-1, on_errors='nan'):\n",
    "        super().__init__()\n",
    "        self.n_jobs = n_jobs\n",
    "\n",
    "        self.rdkit_fp = ECFP(n_jobs, on_errors=on_errors, input_type='smiles')\n",
    "        self.rdkit_fp = MACCS(n_jobs, on_errors=on_errors, input_type='smiles')\n",
    "\n",
    "ECFP_plus_MACCS = RDKitDesc()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   ecfp3:0  ecfp3:1  ecfp3:2  ecfp3:3  ecfp3:4  ecfp3:5  ecfp3:6  ecfp3:7  \\\n",
      "0        0        1        0        0        0        0        0        0   \n",
      "1        0        0        0        0        0        0        0        0   \n",
      "2        0        1        0        0        0        0        0        0   \n",
      "3        0        1        0        0        0        0        0        0   \n",
      "4        0        0        0        0        0        0        0        0   \n",
      "\n",
      "   ecfp3:8  ecfp3:9  ...  maccs:157  maccs:158  maccs:159  maccs:160  \\\n",
      "0        0        0  ...          0          1          0          1   \n",
      "1        0        0  ...          1          0          1          0   \n",
      "2        0        0  ...          1          1          1          0   \n",
      "3        0        0  ...          1          0          1          1   \n",
      "4        0        0  ...          1          0          1          0   \n",
      "\n",
      "   maccs:161  maccs:162  maccs:163  maccs:164  maccs:165  maccs:166  \n",
      "0          1          1          1          0          1          0  \n",
      "1          1          1          1          1          1          0  \n",
      "2          1          1          1          1          1          0  \n",
      "3          0          0          0          1          0          0  \n",
      "4          0          1          1          1          1          0  \n",
      "\n",
      "[5 rows x 2215 columns]\n"
     ]
    }
   ],
   "source": [
    "tmp_FPs = ECFP_plus_MACCS.transform(data_ss['SMILES'])\n",
    "print(tmp_FPs.head())\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### train forward models inside XenonPy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 1-2min to complete!</span>**\n",
    "\n",
    "The prepared descriptor class will be added to the forward model class used in iQSPR. The forward model calculates the likelihood value for a given molecule. iQSPR provides a Gaussian likelihood template, but users can also write their own BaseLogLikelihood class. To prepare the Gaussian likelihood, iQSPR provides two options:\n",
    "1. use the default setting - Bayesian linear model\n",
    "2. use your own pre-trained model that output mean and standard deviation.\n",
    "\n",
    "Here, we start with the first option. Note that there are a few ways to set the target region of the properties."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1min 21s, sys: 2.29 s, total: 1min 23s\n",
      "Wall time: 1min 2s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# Forward model template in XenonPy-iQSPR \n",
    "from xenonpy.inverse.iqspr import GaussianLogLikelihood\n",
    "\n",
    "# write down list of property name(s) for forward models and decide the target region\n",
    "# (they will be used as a key in whole iQSPR run)\n",
    "prop = ['E','HOMO-LUMO gap']\n",
    "target_range = {'E': (0,200), 'HOMO-LUMO gap': (-np.inf, 3)}\n",
    "\n",
    "# import descriptor class to iQSPR and set the target of region of the properties\n",
    "prd_mdls = GaussianLogLikelihood(descriptor=RDKit_FPs, targets = target_range)\n",
    "\n",
    "# train forward models inside iQSPR\n",
    "prd_mdls.fit(data_ss['SMILES'], data_ss[prop])\n",
    "\n",
    "# target region can also be updated afterward\n",
    "prd_mdls.update_targets(reset=True,**target_range)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The variable directly contains models for each property trained this way. Note that the input of these models is the preset descriptor (RDKit_FPs in this case)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "BayesianRidge(alpha_1=1e-06, alpha_2=1e-06, compute_score=True, copy_X=True,\n",
       "              fit_intercept=True, lambda_1=1e-06, lambda_2=1e-06, n_iter=300,\n",
       "              normalize=False, tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "prd_mdls['E']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The variable can be also used for prediction directly from mol/smiles, where the output is a dataframe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      E: mean     E: std  HOMO-LUMO gap: mean  HOMO-LUMO gap: std\n",
      "0  216.509826  30.797906             6.447289            0.665743\n",
      "1  149.129376  30.668275             5.067788            0.663043\n",
      "2  196.939862  29.519475             5.394701            0.642767\n",
      "3  223.707730  29.193235             7.786168            0.635042\n",
      "4   87.583524  30.042102             4.707544            0.649219\n",
      "CPU times: user 4.99 s, sys: 388 ms, total: 5.38 s\n",
      "Wall time: 8.73 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "pred = prd_mdls.predict(data_ss['SMILES'])\n",
    "print(pred.head())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us take a look at the distribution of the likelihood values for all the molecules in our data as a validation. Note that directly calling the object is equivalent to calling the `log_likelihood` function. The output will be a pandas dataframe with properties on the columns. To get the final log-likelihood, you can simply sum over the columns. You will see that all molecules have a small likelihood because they are far from our target region. Note that when setting the target region for the likelihood calculation, \"np.inf\" is supported. Also, we use only log-likelihood in iQSPR to avoid numerial issue.\n",
    "\n",
    "Note that we can also update the target region when calling the `log_likelihood` function, but this will automatically overwrite the existing target region!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "          E  HOMO-LUMO gap\n",
      "0 -1.217547     -16.004130\n",
      "1 -0.049805      -7.003767\n",
      "2 -0.613814      -9.236479\n",
      "3 -1.568449     -31.357115\n",
      "4 -0.001869      -5.456765\n",
      "CPU times: user 5.12 s, sys: 396 ms, total: 5.51 s\n",
      "Wall time: 9.29 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# calculate log-likelihood for a given target property region\n",
    "tmp_ll = prd_mdls(data_ss['SMILES'], **target_range)\n",
    "print(tmp_ll.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot histogram of log-likelihood values\n",
    "tmp = tmp_ll.sum(axis = 1, skipna = True)\n",
    "\n",
    "plt.figure(figsize=(8,5))\n",
    "plt.hist(tmp, bins=50)\n",
    "plt.title('ln(likelihood) for SMILES in the data subset')\n",
    "plt.xlabel('ln(likelihood)')\n",
    "plt.ylabel('Counts')\n",
    "plt.show()\n",
    "\n",
    "# plot histogram of likelihood values\n",
    "plt.figure(figsize=(8,5))\n",
    "plt.hist(np.exp(tmp), bins=50)\n",
    "plt.title('Likelihood for SMILES in the data subset')\n",
    "plt.xlabel('Likelihood')\n",
    "plt.ylabel('Counts')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# check the predicted likelihood\n",
    "dot_scale = 0.1\n",
    "l_std = np.sqrt(pred['E: std']**2+pred['HOMO-LUMO gap: std']**2)\n",
    "\n",
    "plt.figure(figsize=(6,5))\n",
    "rectangle = plt.Rectangle((0,0),200,3,fc='y',alpha=0.1)\n",
    "plt.gca().add_patch(rectangle)\n",
    "im = plt.scatter(pred['E: mean'], pred['HOMO-LUMO gap: mean'], s=l_std*dot_scale, c=np.exp(tmp),alpha = 0.2,cmap=plt.get_cmap('cool'))\n",
    "plt.title('Pubchem data')\n",
    "plt.xlabel('E')\n",
    "plt.ylabel('HOMO-LUMO gap')\n",
    "plt.colorbar(im)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 5-10min to complete!</span>**\n",
    "\n",
    "The second option is to prepare your own forward model. In fact, this may often be the case because you may want to first validate your model before using it. When the training takes a long time, you want to avoid repeating the calculation that is simply wasting computing resources. In this tutorial, we will use gradient boosting. Let us first verify the performance of the model on our data set using a 10-fold cross-validation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 5min 12s, sys: 7.06 s, total: 5min 19s\n",
      "Wall time: 7min 13s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# forward model library from scikit-learn\n",
    "#from sklearn.ensemble import RandomForestRegressor\n",
    "#from sklearn.linear_model import ElasticNetCV\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "#from sklearn.linear_model import ElasticNet\n",
    "# xenonpy library for data splitting (cross-validation)\n",
    "from xenonpy.datatools import Splitter\n",
    "\n",
    "np.random.seed(201906)\n",
    "\n",
    "# property name will be used as a reference for calling models\n",
    "prop = ['E','HOMO-LUMO gap']\n",
    "\n",
    "# prepare indices for cross-validation data sets\n",
    "sp = Splitter(data_ss.shape[0], test_size=0, k_fold=10)\n",
    "\n",
    "# initialize output variables\n",
    "y_trues, y_preds = [[] for i in range(len(prop))], [[] for i in range(len(prop))]\n",
    "y_trues_fit, y_preds_fit = [[] for i in range(len(prop))], [[] for i in range(len(prop))]\n",
    "mdls = {key: [] for key in prop}\n",
    "\n",
    "# cross-validation test\n",
    "for iTr, iTe in sp.cv():\n",
    "    x_train = data_ss['SMILES'].iloc[iTr]\n",
    "    x_test = data_ss['SMILES'].iloc[iTe]\n",
    "    \n",
    "    fps_train = RDKit_FPs.transform(x_train)\n",
    "    fps_test = RDKit_FPs.transform(x_test)\n",
    "    \n",
    "    y_train = data_ss[prop].iloc[iTr]\n",
    "    y_test = data_ss[prop].iloc[iTe]\n",
    "    for i in range(len(prop)):\n",
    "        #mdl = RandomForestRegressor(500, n_jobs=-1, max_features='sqrt')\n",
    "        #mdl = ElasticNetCV(cv=5)\n",
    "        mdl = GradientBoostingRegressor(loss='ls')\n",
    "        #mdl = ElasticNet(alpha=0.5)\n",
    "        \n",
    "        mdl.fit(fps_train, y_train.iloc[:,i])\n",
    "        prd_train = mdl.predict(fps_train)\n",
    "        prd_test = mdl.predict(fps_test)\n",
    "\n",
    "        y_trues[i].append(y_test.iloc[:,i].values)\n",
    "        y_trues_fit[i].append(y_train.iloc[:,i].values)\n",
    "        y_preds[i].append(prd_test)\n",
    "        y_preds_fit[i].append(prd_train)\n",
    "\n",
    "        mdls[prop[i]].append(mdl)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You will see that the performance is not so bad, especially inside the target region that we are aiming at."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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40702bp18jhdzjXok8/ncbvd/PEf/zGf/vSnaTCjVOeZS9unucjJzoZh8NBDD7Fr1y527drFwYMH+eAHP8i6devYuXMnV155JQ899BCf//znF+R4FhYXC4899hiXX345hw8fRil1wQgmXOqiuQiO+bml4e68804effRR0uk0ACMjI0xOTjI6OorP5+O9730vH//4x3n55ZfftK2FxaXK9773PR544AFaWloIXQCui+O5tIfni+CYn1sa7u677+Y973kPb3nLWwDw+/1861vf4uDBg/zO7/wONpsNp9PJV7/6VQAefPBB7r77btrb261AkMUlyd///d/zn//zf+bGG29k+/bt1NfXn+9TehOXfGm45VwqzCoNZ3Ex8a//+q/cf//93HLLLWzbtu2s+5IvBCcrDXdpW5pwQTvmLSwuJbZu3crHPvYxPve5z13QEzws0bSwWEiWYuRymsfIZmW111+XPMmWFmhvlymQ/f0wNibrdXRIVLyt7fQKaxxflNhul+McOiTLWlpkP6GQnJ7fL9Mvk0k5dbMXutknffv273P33XdTV1fHl7/85YW9V4vApR0IsrBYSJaiIMdpHiObhVdfhZdeElFzu6UQ8eOPS4GNvXtlvvnMjLx+6SVJHT1VYY3jixLHYvCDH8C+fSKYxSK8+CLs3y+iHIvBjh1S0GNsTCokxeMy1XJwED71qa/wwAMP8JWvfGXh7tEic1FamoZhoMx5Xhcpy9kXvew5kaW3iHm/pnVn9EVxoxGo1/AoOUZqBvb/XZSn85FjBYVzORHE1lax9EyNPXBAlq9ZIwnqIMtnZkTQrrzy5IU15hYlBtkGJIba1CT7CYXEssxm5fNAQHqhl8u1xJRsFrZt+yKPPPIp3vGOB3jooYfO6f4sJRedpenxeIjFYhe1qBiGQSwWw7PQvU8tTs3JLL1Fyvuda935CknKLh9j4yKMqRTseNXH4ZeTzMzIaezYITodj8tj716x+Mz55bourw2j1ou8VBKhO1WB4eOLEqfTIqD5fG0eus9Xq8FpVkmanZX3Tic4HAbf/OZneeSRT3HHHb/GH//xt8/rXPIz5aKzNDs7OxkeHmbqQqnHv0h4PB46OzvP92lcepzMmlykIsdvsO4aArgLOjg1EkmYmgQ9plP0B471+mlpkcMWi7Wiw/G4WJwuV63UmzkYy+VkeqTff+rCGqbw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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot results\n",
    "for i, x in enumerate(prop):\n",
    "    y_true = np.concatenate(y_trues[i])\n",
    "    y_pred = np.concatenate(y_preds[i])\n",
    "    y_true_fit = np.concatenate(y_trues_fit[i])\n",
    "    y_pred_fit = np.concatenate(y_preds_fit[i])\n",
    "    xy_min = min(np.concatenate([y_true,y_true_fit,y_pred,y_pred_fit]))*0.95\n",
    "    xy_max = max(np.concatenate([y_true,y_true_fit,y_pred,y_pred_fit]))*1.05\n",
    "    xy_diff = xy_max - xy_min\n",
    "    \n",
    "    plt.figure(figsize=(5,5))\n",
    "    plt.scatter(y_pred_fit, y_true_fit, c='b', alpha=0.1, label='train')\n",
    "    plt.scatter(y_pred, y_true, c='r', alpha=0.2, label='test')\n",
    "    plt.text(xy_min+xy_diff*0.7,xy_min+xy_diff*0.05,'MAE: %5.2f' % np.mean(np.abs(y_true - y_pred)),fontsize=12)\n",
    "    plt.title('Property: ' + x)\n",
    "    plt.xlim(xy_min,xy_max)\n",
    "    plt.ylim(xy_min,xy_max)\n",
    "    plt.legend(loc='upper left')\n",
    "    plt.xlabel('Prediction')\n",
    "    plt.ylabel('Observation')\n",
    "    plt.plot([xy_min,xy_max],[xy_min,xy_max],ls=\"--\",c='k')\n",
    "    plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we define a class that return mean and std based on a list of models.\n",
    "Note that the class must have a function called \"predict\" that takes a descriptor input and return first mean, then standard deviation. Here, we add a constant noise variance to the model variable calculated from the bootstrapped models.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "class bootstrap_fcn():\n",
    "    def __init__(self, ms, var):\n",
    "        self.Ms = ms\n",
    "        self.Var = var\n",
    "    def predict(self, x):\n",
    "        val = np.array([m.predict(x) for m in self.Ms])\n",
    "        return np.mean(val, axis = 0), np.sqrt(np.var(val, axis = 0) + self.Var)\n",
    "    \n",
    "# include basic measurement noise\n",
    "c_var = {'E': 650,'HOMO-LUMO gap': 0.5}\n",
    "\n",
    "# generate a dictionary for the final models used to create the likelihood\n",
    "custom_mdls = {key: bootstrap_fcn(value, c_var[key]) for key, value in mdls.items()}\n",
    "    \n",
    "# import descriptor calculator and forward model to iQSPR\n",
    "prd_mdls = GaussianLogLikelihood(descriptor=RDKit_FPs, targets=target_range, **custom_mdls)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once again, we can make predictions and calculate the likelihood values for the full data set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      E: mean     E: std  HOMO-LUMO gap: mean  HOMO-LUMO gap: std\n",
      "0  196.994309  26.048981             5.870756            0.707775\n",
      "1  124.152421  25.704305             5.461278            0.708236\n",
      "2  199.372752  26.200495             5.273028            0.707450\n",
      "3  222.825184  25.863771             7.533414            0.707730\n",
      "4   84.651376  25.595545             5.201233            0.708923\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 8.3 s, sys: 894 ms, total: 9.19 s\n",
      "Wall time: 24.4 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "pred = prd_mdls.predict(data_ss['SMILES'])\n",
    "print(pred.head())\n",
    "\n",
    "# calculate log-likelihood for a given target property region\n",
    "tmp_ll = prd_mdls.log_likelihood(data_ss['SMILES'])\n",
    "tmp = tmp_ll.sum(axis = 1, skipna = True)\n",
    "\n",
    "# plot histogram of likelihood values\n",
    "plt.figure(figsize=(8,5))\n",
    "plt.hist(np.exp(tmp), bins=50)\n",
    "plt.title('Likelihood for SMILES in the data subset')\n",
    "plt.xlabel('Likelihood')\n",
    "plt.ylabel('Counts')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# check the predicted likelihood\n",
    "dot_scale = 0.5\n",
    "l_std = np.sqrt(pred['E: std']**2+pred['HOMO-LUMO gap: std']**2)\n",
    "\n",
    "plt.figure(figsize=(6,5))\n",
    "rectangle = plt.Rectangle((0,0),200,3,fc='y',alpha=0.1)\n",
    "plt.gca().add_patch(rectangle)\n",
    "im = plt.scatter(pred['E: mean'], pred['HOMO-LUMO gap: mean'], s=l_std*dot_scale, c=np.exp(tmp),alpha = 0.2,cmap=plt.get_cmap('cool'))\n",
    "plt.title('Pubchem data')\n",
    "plt.xlabel('E')\n",
    "plt.ylabel('HOMO-LUMO gap')\n",
    "plt.colorbar(im)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 1-2min to complete!</span>**\n",
    "\n",
    "Use of multiple likelihood models is also supported. It is unnecessary in this example, but we will demonstrate how to do it by naively creating separate models for the two properties. Note that you can assign different descriptors to different likelihood models.\n",
    "\n",
    "By creating your own `BaseLogLikelihoodSet` object, you can combine likelihood models as you need. However, make sure you setup the models before hand, including training of the models and setting up the target regions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1min 7s, sys: 2.14 s, total: 1min 10s\n",
      "Wall time: 54.7 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "from xenonpy.inverse.base import BaseLogLikelihoodSet\n",
    "\n",
    "prd_mdl1 = GaussianLogLikelihood(descriptor = RDKit_FPs, targets = {'E': (0, 200)})\n",
    "prd_mdl2 = GaussianLogLikelihood(descriptor = ECFP_plus_MACCS, targets = {'HOMO-LUMO gap': (-np.inf, 3)})\n",
    "\n",
    "prd_mdl1.fit(data_ss['SMILES'], data_ss['E'])\n",
    "prd_mdl2.fit(data_ss['SMILES'], data_ss['HOMO-LUMO gap'])\n",
    "\n",
    "class MyLogLikelihood(BaseLogLikelihoodSet):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        \n",
    "        self.loglike = prd_mdl1\n",
    "        self.loglike = prd_mdl2\n",
    "        \n",
    "like_mdl = MyLogLikelihood()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Calculating likelihood values is the same as before, but `BaseLogLikelihoodSet` does not support direct prediction of the properties unless users define one themselves."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 8.03 s, sys: 804 ms, total: 8.83 s\n",
      "Wall time: 20.9 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# calculate log-likelihood for a given target property region\n",
    "tmp_ll = like_mdl(data_ss['SMILES'])\n",
    "tmp = tmp_ll.sum(axis = 1, skipna = True)\n",
    "\n",
    "# plot histogram of likelihood values\n",
    "plt.figure(figsize=(8,5))\n",
    "plt.hist(np.exp(tmp), bins=50)\n",
    "plt.title('Likelihood for SMILES in the data subset')\n",
    "plt.xlabel('Likelihood')\n",
    "plt.ylabel('Counts')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### N-gram preparation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 3-5min to complete!</span>**\n",
    "\n",
    "For prior, which is simply a molecule generator, we currently provide a N-gram model based on the extended SMILES language developed by our previous iQSPR developers. \n",
    "\n",
    "Note that because the default sample_order in `NGram` is 10, setting train_order=5 (max order to be used in iQSPR) when fitting will cause a warning, and XenonPy will automatically set sample_order=5 (actual order to be used when running the iQSPR).\n",
    "\n",
    "There is a default lower bound to the train_order and sample_order = 1, representing to use at least one character as a reference for generating the next character. We do not recommend altering this number."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:119: RuntimeWarning: max <sample_order>: 10 is greater than max <train_order>: 5,max <sample_order> will be reduced to max <train_order>\n",
      "  RuntimeWarning)\n",
      "100%|██████████| 3000/3000 [03:16<00:00, 15.26it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2min 52s, sys: 3.32 s, total: 2min 55s\n",
      "Wall time: 3min 16s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "NGram(del_range=(1, 10), max_len=1000, min_len=1, ngram_tab=None,\n",
       "      reorder_prob=0, sample_order=(1, 5))"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# N-gram library in XenonPy-iQSPR\n",
    "from xenonpy.inverse.iqspr import NGram\n",
    "\n",
    "# initialize a new n-gram\n",
    "n_gram = NGram()\n",
    "\n",
    "# train the n-gram with SMILES of available molecules\n",
    "n_gram.fit(data_ss['SMILES'],train_order=5)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us take a look at the molecules generated by our trained N-gram."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Round 0 ['CC(C)CN1CC(C1)C1=CC=CC=C1', 'C1=CC(=CN=C1)S', 'C1=CC(=CC=C1CC(C(=O)O)N)Cl', 'CCCCCC(=O)OCC1=CC=C(C=C1)O', 'C1=CC(=C(C=C1O)C(=O)O)[N+](=O)[O-]']\n",
      "Round 1 ['CC(C)CN1CC(C1)C1=CC=CC=C1', 'C1=CC(=CN=C1)Cl', 'C1=CC(=CC=C1CCCC(=O)O)OC', 'CCCCCC(=O)OCC1=CC=C(C=C1)C(C)N(CCCCC)C=C(C(=C)O)C(=O)N(C)S(=O)(=O)O', 'C1=CC(=C(C=C1O)C(=O)O)CCO']\n",
      "Round 2 ['CC(C)CN1CC(C1)C1=CC=CC=C1', 'C1=CC(=CN=C1)C1=CC(=CC(=C1)OC)O', 'C1=CC(=CC=C1CCCC(=O)O)C(=O)C', 'CCCCCC(=O)OCC1=CC=C(C=C1)C(C)N(CCCCC)C=C(C(=C)O)C(=O)N(C)S(=O)C1=CC(=CC=C1NC(=O)C(CCCC1C(C(C1)O)O)N=C(N)N)O', 'C1=CC(=C(C=C1O)C(=O)O)CCN']\n",
      "Round 3 ['CC(C)CN1CC(C1)C1=CC=CC=C1', 'C1=CC(=CN=C1)C1=CC(=CC=C1)Cl', 'C1=CC(=CC=C1CCCC(=O)O)Cl', 'CCCCCC(=O)OCC1=CC=C(C=C1)C(C)N(CCCCC)C=C(C(=C)O)C(=O)N(C)S(=O)C1=CC(=CC=C1NC(=O)C(CCCC1C(C(C1)O)O)N)OCC(CO)N', 'C1=CC(=C(C=C1O)O)N']\n",
      "Round 4 ['CC(C)CN1CC(C1)C1=CC=CC=C1', 'C1=CC(=CN=C1)C#N', 'C1=CC(=CC=C1CCCCCC(=O)C(C1=CC=CC2=CC=CC=C2CCC2=CC=C(C=C2)Cl)NC(=N1)NCCCOC)C', 'CCCCCC(=O)OCC1=CC=C(C=C1)C(C)N(CCCCC)C=C(C(=C)O)C(=O)N(C)S(=O)C1=CC(=CC=C1NC(=O)C(CCCC1C(C(C1)O)O)N)OCC(=O)C1=CC=C(C=C1)CCO', 'C1=CC(=C(C=C1)C(=N)N=[N+]=[N-])Cl']\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(201903) # fix the random seed\n",
    "\n",
    "# perform pure iQSPR molecule generation starting with 5 initial molecules\n",
    "n_loop = 5\n",
    "tmp = data_ss['SMILES'][:5]\n",
    "for i in range(n_loop):\n",
    "    tmp = n_gram.proposal(tmp)\n",
    "    print('Round %i' % i,tmp)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Our N-gram-based molecular generator runs as follow:\n",
    "1. given a tokenized SMILES in the extended SMILES format, randomly delete N tokens from the tail,\n",
    "2. generate the next token using the N-gram table until we hit a termination token or a pre-set maximum length,\n",
    "3. if generation ended without a termination token, a simple gramma check will be performed trying to fix any invalid parts, and the generated molecule will be abandoned if this step fails. \n",
    "\n",
    "Because we always start the modification from the tail and SMILES is not a 1-to-1 representation of a molecule, we recommend users to use the re-order function to randomly re-order the extended SMILES, so that you will not keep modifying the same part of the molecule. To do so, you can use the \"set_params\" function or do so when you initialize the N-gram using \"NGram(...)\". In fact, you can adjust other parameters in our N-gram model this way.\n",
    "\n",
    "Note that we did not re-order the SMILES when training our N-gram model, it is highly possible that a re-ordered SMILES during the generation process will lead to substrings that cannot be found in the pre-trained N-gram table, causing a warning message and the molecule will be kept the same."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:404: RuntimeWarning: get_prob: ['C', '(', '=O', ')', '(', 'O', ')', 'c', '&', 'c', 'c'] not found in NGram, iB=0, iR=1\n",
      "  warnings.warn('get_prob: %s not found in NGram, iB=%i, iR=%i' % (tmp_str, iB, iR), RuntimeWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Round 0 ['CC(C)CN1CC(C1)C1(CCN(CC1)C)C1=CNC2=C1C=C(C=C2)Br', 'C1=CC(=CN=C1)C(=O)OCCO', 'C1=CC(=CC=C1CC(C(=O)O)N)N(CCCl)C(=O)CN1CCN(C1)C1=CC(=C(C(=C1)Cl)N=NC1=C(C=CC(=C1Cl)C)OC)N', 'O=C(CCCCC)Cl', 'C1=CC(=C(C=C1O)C(=O)O)O']\n",
      "Round 1 ['C1C(C2(c3c[nH]c4ccc(Br)cc34)CCN(C)CC2)CCC2=CC(=O)N2C1', 'C1=CC(=CN=C1)C(=O)OCCO', 'C1=CC(=CC=C1CC(C(=O)O)N)N(CCCl)C(=O)CN1CCN(C1)C1=CC(=C(C(=C1)Cl)N=NC1=C(C=CC(=C1Cl)C)OCC1=CC=CS1)O', 'O=C(C(=O)O)S', 'C1=CC(=C(C=C1O)C(C(=O)O)O)Cl']\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:404: RuntimeWarning: get_prob: ['C', '(', 'O', ')', 'C', 'O', 'C', '(', '=O', ')', 'c'] not found in NGram, iB=0, iR=0\n",
      "  warnings.warn('get_prob: %s not found in NGram, iB=%i, iR=%i' % (tmp_str, iB, iR), RuntimeWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Round 2 ['C1C(C2(c3c[nH]c4ccc(Br)cc34)CCN(C)CC2)CCC2=CC(=O)N2C1', 'C1=CC(=CN=C1)C(=O)OC1=CC(=CC(=C1C)C(=O)O)C(=O)OCCCCCCCBr', 'C1=CC(=CC=C1CC(C(=O)O)N)N(CCCl)C(=O)CN1CCN(C1)C1=CC(=C(C(=C1)Cl)N=NC1=C(C=CC(=C1Cl)C)OCC1=CC=CC=C1)N', 'O=C(CCl)N1CCCCCOCCCCOCCCCOC(C(O1)OCC1=CC=CC=C1)COC(=O)C(=C)C(=O)OCCN(C)CC1=CNC2=CC=CC=C12', 'C1=CC(=C(C=C1O)C(C(=O)O)NC(C)C)C(=O)OC1=CC(=C(C=C1)Cl)O']\n",
      "Round 3 ['C1C(C2(c3c[nH]c4ccc(Br)cc34)CCN(C)CC2)CCC2=CC(=O)N2C1', 'C1=CC(=CN=C1)C(=O)OC1=CC(=CC(=C1C)C(=O)O)C(=O)OCCCCF', 'C1=CC(=CC=C1CC(C(=O)O)N)N(CCCl)C(=O)CN1CCN(C1)C1=CC(=C(C(=C1)Cl)N=NC1=C(C=CC(=C1Cl)C)OCCN(CC)C)Cl', 'O=C(CCl)N1CCCCCOCCCCOCCCCOC(C(O1)OCC1=CC=CC=C1)COC(=O)C(=C)C(=O)OCCN(C)CC1=CNC2=C1C(=O)N2', 'C1=CC(=C(C=C1O)C(C(=O)O)NC(C)C)C(=O)OC1=CC(=C(C=C1)Cl)O']\n",
      "Round 4 ['C1C(C2(c3c[nH]c4ccc(Br)cc34)CCN(C)CC2)CCC2=CC(=O)N2C1', 'C1=CC(=CN=C1)C(=O)OC1=CC(=CC(=C1C)C(=O)O)C(=O)OCCCC', 'c1(Cl)c(C)ccc(OCCN(C)CC)c1N=Nc1c(Cl)cc(N2CCN(CC(=O)N(CCCl)c3ccc(CC(N)C(=O)O)cc3)C)OC1C(C=C2)CCCCCC', 'O=C(CCl)N1CCCCCOCCCCOCCCCOC(C(O1)OCC1=CC=CC=C1)COC(=O)C(=C)C(=O)OCCN(C)CC1=CNC2=C1C=C(C=C2)COC(=O)C=C(C#N)C', 'C1=CC(=C(C=C1O)C(C(=O)O)NC(C)C)C(=O)OC1=CC(=C(C=C1)Cl)F']\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert CC(C)NC(C(=O)O)c1cc(O)ccc1C(=O)Oc1ccc(O1)(CC1=CNC2=C1C=CC(=C2O)O)CC to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n"
     ]
    }
   ],
   "source": [
    "# change internal parameters of n_gram generator\n",
    "n_gram.set_params(del_range=[1,10],max_len=500, reorder_prob=0.5)\n",
    "\n",
    "np.random.seed(201906) # fix the random seed\n",
    "\n",
    "# perform pure iQSPR molecule generation starting with 10 PG molecules\n",
    "n_loop = 5\n",
    "tmp = data_ss['SMILES'][:5]\n",
    "for i in range(n_loop):\n",
    "    tmp = n_gram.proposal(tmp)\n",
    "    print('Round %i' % i,tmp)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To avoid getting stuck at certain molecule structures due to the re-ordering issue, we recommend two solutions: \n",
    "\n",
    "1. Avoid re-ordering: standardize the SMILES to a single format and avoid re-ordering during generation process. To avoid not modifying only certain part of the molecule, pick a larger maximum number for \"del_range\". This way, you will save time on training the N-gram model, but probably need more iteration steps during the actual iQSPR run for convergence to your target property region. This is recommend only if you are really out of computing power for training a big N-gram table.\n",
    "\n",
    "2. Data augmentation: expand your training set of SMILES by adding re-ordered SMILES of each originally available SMILES. Be careful of the bias to larger molecules due to more re-order patterns for longer SMILES. This way, you will need longer time to train the N-gram model, but probably converge faster in the actual iQSPR run."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 5-10min to complete!</span>**\n",
    "\n",
    "You can skip this part and proceed forward"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 3000/3000 [04:13<00:00, 11.83it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 4min 13s, sys: 1.44 s, total: 4min 14s\n",
      "Wall time: 4min 14s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# Method 1: use canonical SMILES in RDKit with no reordering\n",
    "cans = [Chem.MolToSmiles(Chem.MolFromSmiles(smi)) for smi in data_ss['SMILES']]\n",
    "n_gram_cans = NGram(reorder_prob=0)\n",
    "n_gram_cans.fit(cans)\n",
    "\n",
    "# save results\n",
    "with open('ngram_cans.obj', 'wb') as f:\n",
    "    pk.dump(n_gram_cans, f)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next TWO modules may take 5-6hr to complete!</span>**\n",
    "\n",
    "You can skip the next TWO cells for time-saving and use our pre-trained `NGram` to proceed forward. Downloading is available at:\n",
    "* https://github.com/yoshida-lab/XenonPy/releases/download/v0.4.1/ngram_pubchem_ikebata_reO15_O10.tar.gz\n",
    "* https://github.com/yoshida-lab/XenonPy/releases/download/v0.4.1/ngram_pubchem_ikebata_reO15_O11to20.tar.gz\n",
    "\n",
    "Please unzip the files yourself.\n",
    "\n",
    "Using the merge table function in `NGram`, we can train and store the big `NGram` tables separately, and combine them later, as will be demonstrated below. Note that the most efficient way to manually parallelize the training of `NGram` is NOT to split the order, but to split the training set of SMILES strings, which is not what we are doing here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "FBr(F)(F)(F)F\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 26 s, sys: 181 ms, total: 26.2 s\n",
      "Wall time: 26.3 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# N-gram library in XenonPy-iQSPR\n",
    "from xenonpy.inverse.iqspr import NGram\n",
    "\n",
    "np.random.seed(201906) # fix the random seed\n",
    "\n",
    "# Method 2: expand n-gram training set with randomly reordered SMILES\n",
    "# (we show one of the many possible ways of doing it)\n",
    "n_reorder = 15 # pick a fixed number of re-ordering\n",
    "\n",
    "# convert the SMILES to canonical SMILES in RDKit (not necessary in general)\n",
    "cans = []\n",
    "for smi in data['SMILES']:\n",
    "    # remove some molecules in the full SMILES list that may lead to error\n",
    "    try:\n",
    "        cans.append(Chem.MolToSmiles(Chem.MolFromSmiles(smi)))\n",
    "    except:\n",
    "        print(smi)\n",
    "        pass\n",
    "\n",
    "mols = [Chem.MolFromSmiles(smi) for smi in cans]\n",
    "smi_reorder_all = []\n",
    "smi_reorder = []\n",
    "for mol in mols:\n",
    "    idx = list(range(mol.GetNumAtoms()))\n",
    "    tmp = [Chem.MolToSmiles(mol,rootedAtAtom=x) for x in range(len(idx))]\n",
    "    smi_reorder_all.append(np.array(list(set(tmp))))\n",
    "    smi_reorder.append(np.random.choice(smi_reorder_all[-1],n_reorder,\n",
    "                                        replace=(len(smi_reorder_all[-1]) < n_reorder)))\n",
    "\n",
    "n_uni = [len(x) for x in smi_reorder_all]\n",
    "plt.hist(n_uni, bins='auto')  # arguments are passed to np.histogram\n",
    "plt.title(\"Histogram for number of SMILES variants\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 250095/250095 [7:24:45<00:00,  9.37it/s]   \n",
      "/Users/stephenwu/anaconda3/envs/xepy_beta_20190924/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:124: RuntimeWarning: min <sample_order>: 1 is smaller than min <train_order>: 11,min <sample_order> will be increased to min <train_order>\n",
      "  RuntimeWarning)\n",
      "/Users/stephenwu/anaconda3/envs/xepy_beta_20190924/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:132: RuntimeWarning: min <sample_order>: 11 is greater than min_len: 1,min_len will be increased to min <sample_order>\n",
      "  RuntimeWarning)\n",
      "100%|██████████| 250095/250095 [29:11:18<00:00,  2.38it/s]    \n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# flatten out the list and train the N-gram\n",
    "flat_list = [item for sublist in smi_reorder for item in sublist]\n",
    "\n",
    "# first train up to order 10\n",
    "n_gram_reorder1 = NGram(reorder_prob=0.5)\n",
    "n_gram_reorder1.fit(flat_list,train_order=10)\n",
    "# save results\n",
    "with open('ngram_pubchem_ikebata_reO15_O10.obj', 'wb') as f:\n",
    "    pk.dump(n_gram_reorder1, f)\n",
    "    \n",
    "# Then, train up from order 11 to 20\n",
    "n_gram_reorder2 = NGram(reorder_prob=0.5)\n",
    "n_gram_reorder2.fit(flat_list,train_order=(11, 20))\n",
    "# save results\n",
    "with open('ngram_pubchem_ikebata_reO15_O11to20.obj', 'wb') as f:\n",
    "    pk.dump(n_gram_reorder2, f)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we will load the two parts of the pre-trained `NGram` files and combine them for our use in the example. Note that you have the option to overwrite an existing `NGram` while combining or create a new one. We recommend overwriting the existing one (default setting of merge_table) if the `NGram` table is expected to be very large in order to avoid memory issue."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NGram(del_range=(1, 10), max_len=1000, min_len=1, ngram_tab=None,\n",
       "      reorder_prob=0.5, sample_order=(1, 10))"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# load a pre-trained n-gram from the pickle file\n",
    "with open('ngram_pubchem_ikebata_reO15_O10.obj', 'rb') as f:\n",
    "    n_gram = pk.load(f)\n",
    "    \n",
    "# load a pre-trained n-gram from the pickle file\n",
    "with open('ngram_pubchem_ikebata_reO15_O11to20.obj', 'rb') as f:\n",
    "    n_gram2 = pk.load(f)\n",
    "\n",
    "n_gram.merge_table(n_gram2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### iQSPR: sequential Monte Carlo"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After the preparation of forward model (likelihood) and `NGram` model (prior), we are now ready to perform the actual iteration of iQSPR to generate molecules in our target property region."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### run iQSPR"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We need to first set up some initial molecules as a starting point of our iQSPR iteration. Note that the number of molecules in this initial set governs the number of molecules generated in each iteration step. In practice, you may want at least 100 or even 1000 molecules per step depending your computing resources to avoid getting trapped in a local region when searching the whole molecular space defined by your N-gram model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['CC(Cc1ccccc1)NCCn1cnc2c1c(=O)n(C)c(=O)n2C' 'CN1CCN(C)C1=O' 'N#CO'\n",
      " 'COC1C(O)C(N)C(OC2OC(C(C)N)CCC2N)C(O)C1N(C)C(=O)CN' 'CCCCOP(N)(=O)OCCCC'\n",
      " 'NS(=O)(=O)Cl' 'CCSC(=O)N(CC)CC' 'CCCCCC=CCC=CCC=CCCCCC(=O)O'\n",
      " 'CCCCCC=CCC=CCC=CC=CC(O)CCCC(=O)O'\n",
      " 'CC1NCCc2c(C(=O)N3CCCCC3)[nH]c3cccc1c23' 'ClC1C=CC(Cl)C(Cl)C1Cl'\n",
      " 'CC1=CC(=O)CC1' 'CC1C(=O)NC(=O)N(C2CCCCC2)C1=O'\n",
      " 'O=[N+]([O-])c1cc2nc(C(F)(F)F)[nH]c2cc1Cl' 'O=C1C=C2NC(C(=O)O)C=C2CC1=O'\n",
      " 'CCSC(=O)N(CC)CC' 'CCCCCCCCOc1ccc(C(=O)c2ccccc2O)c(O)c1'\n",
      " 'COc1ccc2c(c1)CCC(c1ccccc1)C2(O)c1ccccn1'\n",
      " 'CCN(CCOC(=O)C(OC)(c1ccccc1)c1ccccc1)CC(C)C' 'COc1ccccc1NC(=O)CC(C)=O'\n",
      " 'CC1CC2C(=CC1=O)CCC1C2CCC2(C)C1CCC2(C)O' 'C1COCCN1' 'NCCNCCO'\n",
      " 'CCC(C)Cc1cccc(O)c1C' 'COC(F)(F)CCl']\n"
     ]
    }
   ],
   "source": [
    "# set up initial molecules for iQSPR\n",
    "np.random.seed(201906) # fix the random seed\n",
    "cans = [Chem.MolToSmiles(Chem.MolFromSmiles(smi)) for i, smi in enumerate(data_ss['SMILES'])\n",
    "       if (data_ss['HOMO-LUMO gap'].iloc[i] > 4)]\n",
    "init_samples = np.random.choice(cans, 25)\n",
    "print(init_samples)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For any sequential Monte Carlo algorithm, annealing is usually recommended to avoid getting trapped in a local mode. In iQSPR, we use the beta vector to control our annealing schedule. We recommend starting with a small number close to 0 to minimize the influence from the likelihood at the beginning steps and using some kind of exponential-like schedule to increase the beta value to 1, which represents the state of the original likelihood. The length of the beta vector directly controls the number of iteration in iQSPR. We recommend adding more steps with beta=1 at the end to allow exploration of the posterior distribution (your target property region). In practice, iteration of the order of 100 or 1000 steps is recommended depending your computing resources."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of steps: 50\n",
      "[0.01       0.02       0.03       0.04       0.05       0.06\n",
      " 0.07       0.08       0.09       0.1        0.11       0.12\n",
      " 0.13       0.14       0.15       0.16       0.17       0.18\n",
      " 0.19       0.2        0.21       0.23111111 0.25222222 0.27333333\n",
      " 0.29444444 0.31555556 0.33666667 0.35777778 0.37888889 0.4\n",
      " 0.4        0.46666667 0.53333333 0.6        0.66666667 0.73333333\n",
      " 0.8        0.86666667 0.93333333 1.         1.         1.\n",
      " 1.         1.         1.         1.         1.         1.\n",
      " 1.         1.        ]\n"
     ]
    }
   ],
   "source": [
    "# set up annealing schedule in iQSPR\n",
    "beta = np.hstack([np.linspace(0.01,0.2,20),np.linspace(0.21,0.4,10),np.linspace(0.4,1,10),np.linspace(1,1,10)])\n",
    "print('Number of steps: %i' % len(beta))\n",
    "print(beta)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 2-3min to complete!</span>**\n",
    "\n",
    "Putting together the initial molecules, beta vector, forward model (likelihood), N-gram model (prior), you can now use a for-loop over the IQSPR class to get the generated molecules at each iteration step. More information can be extracted from the loop by setting \"yield_lpf\" to True (l: log-likelihood, p: probability of resampling, f: frequency of appearence). Note that the length of generated molecules in each step may not equal to the length of intial molecules because we only track the unique molecules and record their appearance frequency separately.\n",
    "\n",
    "We will use the previously trained `NGram` here. Please make sure you have loaded the `NGram` models and merged them property in the previous section. We will reset the parameters again to make sure the values are what we expected them to be. \n",
    "\n",
    "Note that warnings will be thrown out if there are molecules generated from the `NGram` that cannot be converted to RDKit's MOL format. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc(CCNc2ccc(N=Nc3ccc(OC)c(N=Nc4ccc(N)cc4)c3C2=O)c2c1C(=O)c1ccccc1C2=O)CC to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12c3ccc4cccc(ccc1cc([N+](=O)[O-])c3)-c3cccc(cc4)c32 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc(N=Nc2ccccc(C)c2)cc(Cl)c1C(=O)OC1CCN(C)CC1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert Nc1c(S(=O)(=O)O)cc(Nc2c(C)cc(C)cc2C)c2ccc3ccc(C)c(C)c3c2c1C to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(N=Nc3ccccc3C)c3cccc([N+](=O)[O-])c3nc2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(N=Nc3ccc(N(C)C)cc3)c3ccc(N)cc3nc2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2c(N=Nc3ccccc3)c3cc(OC)ccc3nc12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(N=Nc3ccc(N)c4c3C(=O)c3c(O)c(-c5ccc(OC)cc5)cc(N)cc3)ccc1c24 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(N=Nc3ccccc3C)c3cccc(F)c3nc2c1C(=O)NCCN(C)C to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2c(N=Nc3ccc4c(C)c(C)n2c34)cccc1[N+](=O)[O-] to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(N=Nc3ccccc3C)c3c(ccc4ccccc43)c(=O)c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2ccc3c(CO)c4ccccc4c(N=Nc4ccc(Cl)cc4Cl)cc3c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert CC(=O)NC1=CC=C(N)N=Nc2ccc([nH][nH]c(=O)c3csc(C)c32)=NCC(C(O)C(C)O)N=1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc(N=Nc2c3ccccc3c(CO)c3ccccc3n2)c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2nc3c(c4nnc5ccc(N)c2c5c(=O)c5c(O)c(-c2ccc(OC)cc2)c15)cc4c3 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2ccc3c(CO)c4ccccc4c(C)c3c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert O=C(C)Nc1ccc(N=Nc2ccc(NNC(=O)c3csc(C)c32)ccc1=O)=O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc(N=Nc2ccc(N)c3c2C(=O)c2c(O)c(-c4ccc(OCCCN(C)C)c(O)c4)n2C)c(F)cc3c1=O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc(C(=O)O)c(C2=CC=C(NC(C)C)CCc3ccc(c4c(C)cc(=O)oc4c2C(O)C1C)C3=O)(C)CCCC(C)=O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert Nc1ccc2c(C)c3ccc(N=Nc4cccc5ccccc45)cc3nc2cc1N to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(N)ccc2c(C)c3ccc(N)cc3nc2cc1N to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc(N=Nc2ccc3c(C)c4ccc(N)cc4)ccc3c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1c(N=Nc2cccc3ccccc23)ccc3c(Cl)c(OC)oc(=O)c3c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2cccc(N=Nc3ccc(O)c4c3C(=O)c3c(O)c(-c5ccn[nH]5)cc(N)cc3)c4nc2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(OC)ccc(-c2cc(N)c3c(c2O)C(=O)C(=O)c2c(N=Nc4cccc5ccccc45)ccc(N)c2)cc3c1N to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert Nc1ccc(N=Nc2ccc3cc4ccccc4cc32)cc1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12ccccc1c(N=Nc1ccc(OC)c3c1C(=O)c1c(O)c(-c4ccc(OCCCN(C)C)c(O)c4)n1C)c23 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert O=C1c2c(N=Nc3cccc4ccccc34)ccc(O)c2C(=O)c2c(N)cc(-c4ccn[nH]n4)c(O)c2C1=O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(N)ccc2nc3cc(N=Nc4ccc(N)c(C)c4)ccc3cc12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert O=C1C(=O)c2c(N)ccc(N=Nc3ccc(O)c4c3C(=O)c3ccccc3C4=O)c2-c2c(O)c(-c4ccc(OC)cc4)[nH]c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert C1(=O)C(=O)c2c(N)ccc(N=Nc3ccc(O)c4c3C(=O)c3ccccc3C4=O)c2-c2c(O)c(-c4ccc(OC)cc4)[nH]c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc(N=Nc2ccc(O)c3c2C(=O)c2c(O)c(-c4ccc(C(C)C(=O)O)cc4)cc32)cc1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(OC)ccc(-c2cc(N)c3c(c2O)-c2c(N=Nc4ccc(O)c5c4C(=O)c4ccccc4C5=O)ccc(N)c2C(=O)OCC)cc3c1-c1ccccc1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert O=C1C(=O)c2c(N)ccc(N=Nc3ccc(O)c4c3C(=O)c3ccccc3C4=O)c2-c2c(O)c(-c4ccc(OC)cc4)[nH]c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc(N=Nc2ccc(O)c3c2C(=O)C(=O)c2c(O)c(-c4ccc(OC)cc4)coc12)cc3Cl to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc(N=Nc2ccc(Nc3ccc(O)cc3)c3c2C(=O)C(=O)c2c(O)c(-c4ccc(OC)cc4)cc2[nH]3)cc1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(N=Nc2ccc(O)c3c2C(=O)c2c(O)c(-c4ccc(OC)cc4)cc(N)cc2)CC2CC(CC(C2)C1)C3 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2cccc(N=Nc3c(Br)cc(Br)c4c3C(=O)C(=O)C(=O)c3c(O)c(-c5ccc(OC)cc5)[nH]c3c4)c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2c(c1)C(=O)c1c(N=Nc3ccc(Cl)c4c5c(N)cc(-c6ccc(OC)cc6)c(O)c(c(=O)c6c(O)ccc(O)c6c5=O)c3c21)sc1c4CCN(Cc4ccccc4)C1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12ccc3ccc(=O)c4cccc(N=Nc5cccc6ccccc56)c(c(=O)c6c(O)c(-c5ccc(OC)cc5)cc(N)c5c(=O)c7ccccc7c(=O)c56)c1c2c34 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc(-c2cc(N)c3c(=O)c4c(Br)cc(Br)c(N=Nc5cccc6ccccc56)c4c(=O)c4c(N)ccc(N)cc4[nH]3)c(=O)oc2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert O(C)c1ccc(-c2cc(Nc3ccc(O)cc3)c3c(c2O)C(=O)c2c(N)ccc(N=Nc4ccc(Cl)cc4Cl)c(Cl)c2)cc3c1N to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(N=Nc2cccc3c2C(=O)c2c(O)c(-c4ccc(OC)cc4)cc2)CC2CC(CC(C2)C1)C3 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(O)ccc(Nc2cc(-c3ccc(OC)cc3)c(O)c3c2C(=O)c2c(N=Nc4cccc5ccc6cccc(c6c54)c32)cccc1C(=O)CCC)C(=O)OCC to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2min 42s, sys: 11 s, total: 2min 53s\n",
      "Wall time: 3min 9s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# library for running iQSPR in XenonPy-iQSPR\n",
    "from xenonpy.inverse.iqspr import IQSPR\n",
    "\n",
    "# update NGram parameters for this exampleHOMO-LUMO gap\n",
    "n_gram.set_params(del_range=[1,20],max_len=500, reorder_prob=0.5, sample_order=(1,20))\n",
    "\n",
    "# set up likelihood and n-gram models in iQSPR\n",
    "iqspr_reorder = IQSPR(estimator=prd_mdls, modifier=n_gram)\n",
    "    \n",
    "np.random.seed(201906) # fix the random seed\n",
    "# main loop of iQSPR\n",
    "iqspr_samples1, iqspr_loglike1, iqspr_prob1, iqspr_freq1 = [], [], [], []\n",
    "for s, ll, p, freq in iqspr_reorder(init_samples, beta, yield_lpf=True):\n",
    "    iqspr_samples1.append(s)\n",
    "    iqspr_loglike1.append(ll)\n",
    "    iqspr_prob1.append(p)\n",
    "    iqspr_freq1.append(freq)\n",
    "# record all outputs\n",
    "iqspr_results_reorder = {\n",
    "    \"samples\": iqspr_samples1,\n",
    "    \"loglike\": iqspr_loglike1,\n",
    "    \"prob\": iqspr_prob1,\n",
    "    \"freq\": iqspr_freq1,\n",
    "    \"beta\": beta\n",
    "}\n",
    "# save results\n",
    "with open('iQSPR_results_reorder.obj', 'wb') as f:\n",
    "    pk.dump(iqspr_results_reorder, f)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### plot results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us take a look at the results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('iQSPR_results_reorder.obj', 'rb') as f:\n",
    "    iqspr_results_reorder = pk.load(f)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we look at how the likelihood values of the generated molecules converged to a distribution peaked around 1 (hitting the target property region). The gradient correlates well to the annealing schedule."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the likelihood evolution\n",
    "\n",
    "# set up the min and max boundary for the plots\n",
    "tmp_list = [x.sum(axis = 1, skipna = True).values for x in iqspr_results_reorder[\"loglike\"]]\n",
    "flat_list = np.asarray([item for sublist in tmp_list for item in sublist])\n",
    "y_max, y_min = max(flat_list), min(flat_list)\n",
    "\n",
    "plt.figure(figsize=(10,5))\n",
    "plt.xlim(0,len(iqspr_results_reorder[\"loglike\"]))\n",
    "plt.ylim(y_min,y_max)\n",
    "plt.xlabel('Step')\n",
    "plt.ylabel('Log-likelihood')\n",
    "for i, ll in enumerate(tmp_list):\n",
    "    plt.scatter([i]*len(ll), ll ,s=10, c='b', alpha=0.2)\n",
    "plt.show()\n",
    "#plt.savefig('iqspr_loglike_reorder.png',dpi = 500)\n",
    "#plt.close()\n",
    "\n",
    "y_max, y_min = np.exp(y_max), np.exp(y_min)\n",
    "plt.figure(figsize=(10,5))\n",
    "plt.xlim(0,len(iqspr_results_reorder[\"loglike\"]))\n",
    "plt.ylim(y_min,y_max)\n",
    "plt.xlabel('Step')\n",
    "plt.ylabel('Likelihood')\n",
    "for i, ll in enumerate(tmp_list):\n",
    "    plt.scatter([i]*len(ll), np.exp(ll) ,s=10, c='b', alpha=0.2)\n",
    "plt.show()\n",
    "#plt.savefig('iqspr_like_reorder.png',dpi = 500)\n",
    "#plt.close()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 1-2min to complete!</span>**\n",
    "\n",
    "Next, we plot the evolution of the generated molecules in the target property space."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Range of std. dev.: (25.5277,40.3270)\n",
      "CPU times: user 15.6 s, sys: 7.93 s, total: 23.5 s\n",
      "Wall time: 38.2 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# re-calculate the property values for the proposed molecules\n",
    "x_mean, x_std, y_mean, y_std = [], [], [], []\n",
    "r_std = []\n",
    "FPs_samples = []\n",
    "for i, smis in enumerate(iqspr_results_reorder[\"samples\"]):\n",
    "    tmp_fps = RDKit_FPs.transform(smis)\n",
    "    FPs_samples.append(tmp_fps)\n",
    "    \n",
    "    tmp1, tmp2 = prd_mdls[\"E\"].predict(tmp_fps)\n",
    "    x_mean.append(tmp1)\n",
    "    x_std.append(tmp2)\n",
    "    \n",
    "    tmp1, tmp2 = prd_mdls[\"HOMO-LUMO gap\"].predict(tmp_fps)\n",
    "    y_mean.append(tmp1)\n",
    "    y_std.append(tmp2)\n",
    "    \n",
    "    r_std.append([np.sqrt(x_std[-1][i]**2 + y_std[-1][i]**2) for i in range(len(x_std[-1]))])\n",
    "\n",
    "# flatten the list for max/min calculation\n",
    "flat_list = [item for sublist in r_std for item in sublist]\n",
    "print('Range of std. dev.: (%.4f,%.4f)' % (min(flat_list),max(flat_list)))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 1-2min to complete!</span>**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 27.9 s, sys: 736 ms, total: 28.6 s\n",
      "Wall time: 32.6 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "import os\n",
    "\n",
    "# prepare a folder to save all the figures\n",
    "ini_dir = './iQSPR_tutorial_prd/'\n",
    "if not os.path.exists(ini_dir):\n",
    "    os.makedirs(ini_dir)\n",
    "\n",
    "flat_list = np.asarray([item for sublist in r_std for item in sublist])\n",
    "s_max, s_min = max(flat_list), min(flat_list)\n",
    "flat_list = np.concatenate((data_ss[\"E\"],\n",
    "    np.asarray([item for sublist in x_mean for item in sublist])))\n",
    "x_max, x_min = max(flat_list), min(flat_list)\n",
    "flat_list = np.concatenate((data_ss[\"HOMO-LUMO gap\"],\n",
    "    np.asarray([item for sublist in y_mean for item in sublist])))\n",
    "y_max, y_min = max(flat_list), min(flat_list)\n",
    "tmp_beta = iqspr_results_reorder[\"beta\"]\n",
    "\n",
    "for i in range(len(r_std)):\n",
    "    dot_size = 45*((np.asarray(r_std[i])-s_min)/(s_max-s_min)) + 5\n",
    "    \n",
    "    plt.figure(figsize=(5,5))\n",
    "    rectangle = plt.Rectangle((0,0),200,3,fc='y',alpha=0.1)\n",
    "    plt.gca().add_patch(rectangle)\n",
    "    plt.scatter(data_ss[\"E\"], data_ss[\"HOMO-LUMO gap\"],s=3, c='b', alpha=0.2)\n",
    "    plt.scatter(x_mean[i], y_mean[i],s=dot_size, c='r', alpha=0.5)\n",
    "    plt.title('Step: %i (beta = %.3f)' % (i,tmp_beta[i]))\n",
    "    plt.xlim(x_min,x_max)\n",
    "    plt.ylim(y_min,y_max)\n",
    "    plt.xlabel('Internal energy')\n",
    "    plt.ylabel('HOMO-LUMO gap')\n",
    "    #plt.show()\n",
    "    plt.savefig(ini_dir+'Step_%02i.png' % i,dpi = 500)\n",
    "    plt.close()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 10-15min to complete!</span>**\n",
    "\n",
    "Finally, let us take a look at the generated molecular structures."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 6min 54s, sys: 18 s, total: 7min 12s\n",
      "Wall time: 7min 25s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "import os\n",
    "\n",
    "# prepare a folder to save all the figures\n",
    "ini_dir = './iQSPR_tutorial_smiles/'\n",
    "if not os.path.exists(ini_dir):\n",
    "    os.makedirs(ini_dir)\n",
    "\n",
    "tmp_list = [x.sum(axis = 1, skipna = True).values for x in iqspr_results_reorder[\"loglike\"]]    \n",
    "\n",
    "n_S = 25\n",
    "for i, smis in enumerate(iqspr_results_reorder['samples']):\n",
    "    tmp_smis = iqspr_results_reorder['samples'][i][\n",
    "        np.argsort(tmp_list[i])[::-1]]\n",
    "    fig, ax = plt.subplots(5, 5)\n",
    "    fig.set_size_inches(20, 20)\n",
    "    fig.set_tight_layout(True)\n",
    "    for j in range(n_S):\n",
    "        xaxis = j // 5\n",
    "        yaxis = j % 5\n",
    "        try:\n",
    "            img = Draw.MolToImage(Chem.MolFromSmiles(tmp_smis[j]))\n",
    "            ax[xaxis, yaxis].clear()\n",
    "            ax[xaxis, yaxis].set_frame_on(False)\n",
    "            ax[xaxis, yaxis].imshow(img)\n",
    "        except:\n",
    "            pass\n",
    "        ax[xaxis, yaxis].set_axis_off()\n",
    "    fig.savefig(ini_dir+'Step_%02i.png' % i,dpi = 500)\n",
    "    plt.close()\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now compare our generated molecules with the 16 existing molecules in our data set that are in the target region. You can see that our generated molecules contain substructures that are similar to a few of the existing molecules."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "target_smis = [Chem.MolToSmiles(Chem.MolFromSmiles(smi)) for i, smi in enumerate(data_ss['SMILES'])\n",
    "       if ((data_ss['HOMO-LUMO gap'].iloc[i] <= 3) and (data_ss['E'].iloc[i] <= 200))]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['O=C1N=c2cc([N+](=O)[O-])c([N+](=O)[O-])cc2=NC1=O', 'O=C1C(O)=C(c2ccccc2)C(=O)C(O)=C1c1ccccc1', 'O=c1ccc2[n+]([O-])c3ccc(O)cc3oc-2c1', 'Nc1ccc2nc3ccccc3nc2c1N', 'Cc1cc(Cl)cc2c1C(=O)C(=C1Sc3cc(Cl)cc(C)c3C1=O)S2', 'Nc1ccc(N)c2c1C(=O)c1c(N)ccc(N)c1C2=O', 'COc1cc(N)c2c(c1N)C(=O)c1ccccc1C2=O', 'Nc1ccc(O)c2c1C(=O)c1ccccc1C2=O', 'CNc1ccc(N(CCO)CCO)cc1[N+](=O)[O-]', 'C1=Cc2c3ccccc3cc3c4c(cc1c23)=CCCC=4', 'O=C(CN1CCOCC1)NN=Cc1ccc([N+](=O)[O-])o1', 'CNc1ccc(O)c2c1C(=O)c1c(O)ccc(NC)c1C2=O', 'O=C1c2c(O)ccc(O)c2C(=O)c2c(O)ccc(O)c21', 'O=C1C=CC(=C2C=CC(=O)C=C2)C=C1', 'c1ccc2c(c1)ccc1c2ccc2ccc3ccccc3c21', 'NC1=NC(=O)C2=C(CNC3C=CC(O)C3O)C=NC2=N1']\n"
     ]
    }
   ],
   "source": [
    "print(target_smis)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 7.46 s, sys: 355 ms, total: 7.82 s\n",
      "Wall time: 8.18 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "import os\n",
    "\n",
    "# prepare a folder to save all the figures\n",
    "ini_dir = './iQSPR_tutorial_target_smiles/'\n",
    "if not os.path.exists(ini_dir):\n",
    "    os.makedirs(ini_dir)\n",
    "\n",
    "n_S = 25\n",
    "\n",
    "fig, ax = plt.subplots(5, 5)\n",
    "fig.set_size_inches(20, 20)\n",
    "fig.set_tight_layout(True)\n",
    "for j in range(n_S):\n",
    "    xaxis = j // 5\n",
    "    yaxis = j % 5\n",
    "    try:\n",
    "        img = Draw.MolToImage(Chem.MolFromSmiles(target_smis[j]))\n",
    "        ax[xaxis, yaxis].clear()\n",
    "        ax[xaxis, yaxis].set_frame_on(False)\n",
    "        ax[xaxis, yaxis].imshow(img)\n",
    "    except:\n",
    "        pass\n",
    "    ax[xaxis, yaxis].set_axis_off()\n",
    "fig.savefig(ini_dir+'target_region.png',dpi = 500)\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### run iQSPR with different annealing schedules"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In some cases, you may want to give priority to certain property reaching the target region. This can be done by adjusting the annealing schedule for each property. To do so, you can input a dictionary for beta, instead. Here, we try to reach a low value for internal energy first. Hence, the annealing schedule for HOMO-LUMO gap has a longer flat region."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           E  HOMO-LUMO gap\n",
      "0   0.010000       0.005714\n",
      "1   0.020000       0.011429\n",
      "2   0.030000       0.017143\n",
      "3   0.040000       0.022857\n",
      "4   0.050000       0.028571\n",
      "5   0.060000       0.034286\n",
      "6   0.070000       0.040000\n",
      "7   0.080000       0.045714\n",
      "8   0.090000       0.051429\n",
      "9   0.100000       0.057143\n",
      "10  0.110000       0.062857\n",
      "11  0.120000       0.068571\n",
      "12  0.130000       0.074286\n",
      "13  0.140000       0.080000\n",
      "14  0.150000       0.085714\n",
      "15  0.160000       0.091429\n",
      "16  0.170000       0.097143\n",
      "17  0.180000       0.102857\n",
      "18  0.190000       0.108571\n",
      "19  0.200000       0.114286\n",
      "20  0.210000       0.120000\n",
      "21  0.231111       0.125714\n",
      "22  0.252222       0.131429\n",
      "23  0.273333       0.137143\n",
      "24  0.294444       0.142857\n",
      "25  0.315556       0.148571\n",
      "26  0.336667       0.154286\n",
      "27  0.357778       0.160000\n",
      "28  0.378889       0.165714\n",
      "29  0.400000       0.171429\n",
      "30  0.400000       0.177143\n",
      "31  0.466667       0.182857\n",
      "32  0.533333       0.188571\n",
      "33  0.600000       0.194286\n",
      "34  0.666667       0.200000\n",
      "35  0.733333       0.210000\n",
      "36  0.800000       0.257500\n",
      "37  0.866667       0.305000\n",
      "38  0.933333       0.352500\n",
      "39  1.000000       0.400000\n",
      "40  1.000000       0.400000\n",
      "41  1.000000       0.550000\n",
      "42  1.000000       0.700000\n",
      "43  1.000000       0.850000\n",
      "44  1.000000       1.000000\n",
      "45  1.000000       1.000000\n",
      "46  1.000000       1.000000\n",
      "47  1.000000       1.000000\n",
      "48  1.000000       1.000000\n",
      "49  1.000000       1.000000\n"
     ]
    }
   ],
   "source": [
    "# set up annealing schedule in iQSPR\n",
    "beta1 = np.hstack([np.linspace(0.01,0.2,20),np.linspace(0.21,0.4,10),np.linspace(0.4,1,10),np.linspace(1,1,10)])\n",
    "beta2 = np.hstack([np.linspace(0.2/35,0.2,35),np.linspace(0.21,0.4,5),np.linspace(0.4,1,5),np.linspace(1,1,5)])\n",
    "beta = pd.DataFrame({'E': beta1, 'HOMO-LUMO gap': beta2})\n",
    "print(beta)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us try to re-run the IQSPR to see how the results may differ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert C1CCN(C(=O)c2[nH]c3c(Cl)ccc4c3c1-c1ccccc1C4)CC2 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12cccc3c1c(c(C(=O)c1c(C)cc(CC(=O)O)no1)[nH]2)CC2C3=CC(NC(=O)N(CC)CC)CN2C to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(C(=O)C(=O)NC=Cc3c4ccc(N)cc4)c(C)n1c23 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(Br)ccc2c(C=CNC(=O)C(=O)c3c[nH]c4c(O)cccc34)c[nH]c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert C(=Cc1c2ccc(N)cc2nc2cc(N)cn2C)CC1O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert [nH]1cc(C=CNC(=O)C(=O)c2c3c(c(C)c4ccccc24)Oc4ccccc4)cc(C(C)(C)C)c31 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(Br)ccc2c(C=CNC(C)=O)c3cccc(F)c3nc2c2ccccc12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert Brc1ccc2c(c1)NC=c1cc[nH]c(=O)c(=O)c3csc4ccccc4c-3nc21 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12c(c(C(=O)C(=O)NC=Cc3c[nH]c4ccccc34)c4ccccc41)OC(C)C(C)C2=O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12cc[nH]c(=O)c(=O)c3csc1=CC=C(OC)C3O2 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc2c3c(c(C(=O)c4cc(Cl)ccc4N=C23)ccn1)c1ccc(N)cc1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert [nH]1cc(C=CNC(=O)C(=O)c2c3c(c(C)c4ccccc24)Oc4ccccc4)ccc3o1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2c(C(=O)C(=O)NC=Cc3c[nH]c4cc(Br)ccc34)c4ccc3ccccc3c4c(CO)c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(C)c3ccc4ccccc4c3c(C(=O)C(=O)NC=Cc3c[nH]c4ccccc34)c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cccc2c(C)c3ccc4ccccc4c3c(C(=O)C(=O)NC=Cc3c[nH]c4ccc(Br)cc34)c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert COc1ccc2c(C=CNC(=O)C(=O)c3c[nH]c4c(O)cccc34)ncnc2cc1OC to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2cc[nH]c(=O)c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccccc1-c1oc2c(C(=O)C(=O)NC=Cc3c[nH]c4cc(Br)ccc14)cccc3c(=O)c2C to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc(C(=O)C(=O)NC=Cc2c[nH]c3cc(Br)ccc23)c3oc(-c2ccccc2)c(C)c(=O)c3c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12cc(C)ccc1nnc1ccc3ccc(O)cc(Cl)cc=3cc[nH]c(=O)c(=O)c3cccc2c13 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(Br)ccc2[nH]cc(C=CNC(=O)C(=O)c3ccc(OC(C)c4ccccc34)c(O)c2)c1C(C)=O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccccc1-c1oc2c(C(=O)C(=O)NC=Cc3c[nH]c4cc(Br)ccc14)cccc3c(=O)c2C to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc(Br)cc2c(C=CNC(=O)C(=O)c3cc4ccc5ccccc5c4c4ccccc4c23)cccc1C to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc(C(=O)C(=O)NC=Cc2c[nH]c3cc(Br)ccc23)c3oc(-c2ccccc2)c(C)c(=O)c3c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert C1=CC=C2C(=O)C(=O)NC=CC3=CNc4cc(Br)cc4n1C(O)(C(=O)OC)CC1(CC)CCCN(CC2)C31 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert C1(=O)C(=O)NC=Cc2cccc(CC)c2C=C(Br)C=Cc2cc3c(ccc4ccccc43)c3c2c1CC3=O to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(CC)cccc2c1C=C(Br)C=Cc1cc3c(ccc4ccccc43)cc1C(=O)C(=O)N=2 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12cc[nH]c(=O)c(=O)c3cccc1c1ccccn1c-3cccc3ccc(Br)cc23 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert C12=CC=Cc3ccc(Br)cc3NC=C3C=CNC(=O)C(=O)CCC3C12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12c(cccc1C(C)(C)N=C=O)C=CNC(=O)C(=O)c1cc3ccc4ccccc4c3cc1c2 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(C(=O)C(=O)NC=Cc2c[nH]c3cccc(Cl)c3)CCC3C(CCC4CC(OC5OC(C)C(O)C(OC)C5O)CCC43C)C1(O)CCC2c2ccc(=O)oc2 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert n1nc(-c2cc(=O)c3cccc(C(=O)C(=O)NC=Cc4c[nH]c5cc(Br)ccc35)c4)nc2c2cc(Cl)ccc12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2c(C(=O)C(=O)NC=Cc3c[nH]c4ccc(Br)cc34)c4ccc3ccccc3c4c(CO)c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(Br)ccc2c(C=CNC(=O)C(=O)c3c[nH]c4c(O)cccc34)c[nH]c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc(NC(=O)C(=O)c2cc3ccc4ccccc4c3c1)ccc2Br to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1ccc2ccc3cc(C(=O)C(=O)Nc4ccncc4)c4ccccc4c3c12 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1cc2cc(C(=O)C(=O)c3cc(Br)ccc3O)c3ccccc3c2c1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c12ccc(cc1)-n-c(=O)-c(=O)-c1cc(C)cccc-2c2c(ccc3ccccc32)cc1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert FC(F)(F)c1cc2[nH]c(=O)c(=O)c(c1N)-c=c1ccc3ccccc3c1=c1[nH]c(=C3C=CC=N3)CCC21C(C)C to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n",
      "/Users/stephenwu/anaconda/envs/xepy37_test/lib/python3.7/site-packages/xenonpy/inverse/iqspr/modifier.py:527: RuntimeWarning: can not convert c1(Br)ccc2c(C=CNC(=O)C(=O)N3C(=O)CN(N=Cc4ccc([N+](=O)[O-])o4)ncnc32)c(N)nc(=O)n1C1CC(O)C(COP(=O)(O)O)O1 to Mol\n",
      "  warnings.warn('can not convert %s to Mol' % new_smi, RuntimeWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2min 36s, sys: 11.7 s, total: 2min 48s\n",
      "Wall time: 3min\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# library for running iQSPR in XenonPy-iQSPR\n",
    "from xenonpy.inverse.iqspr import IQSPR\n",
    "\n",
    "# update NGram parameters for this exampleHOMO-LUMO gap\n",
    "n_gram.set_params(del_range=[1,20],max_len=500, reorder_prob=0.5)\n",
    "\n",
    "# set up likelihood and n-gram models in iQSPR\n",
    "iqspr_reorder = IQSPR(estimator=prd_mdls, modifier=n_gram)\n",
    "    \n",
    "np.random.seed(201909) # fix the random seed\n",
    "# main loop of iQSPR\n",
    "iqspr_samples1, iqspr_loglike1, iqspr_prob1, iqspr_freq1 = [], [], [], []\n",
    "for s, ll, p, freq in iqspr_reorder(init_samples, beta, yield_lpf=True):\n",
    "    iqspr_samples1.append(s)\n",
    "    iqspr_loglike1.append(ll)\n",
    "    iqspr_prob1.append(p)\n",
    "    iqspr_freq1.append(freq)\n",
    "# record all outputs\n",
    "iqspr_results_reorder = {\n",
    "    \"samples\": iqspr_samples1,\n",
    "    \"loglike\": iqspr_loglike1,\n",
    "    \"prob\": iqspr_prob1,\n",
    "    \"freq\": iqspr_freq1,\n",
    "    \"beta\": beta\n",
    "}\n",
    "# save results\n",
    "with open('iQSPR_results_reorder2.obj', 'wb') as f:\n",
    "    pk.dump(iqspr_results_reorder, f)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### plot results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us take a look at the results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('iQSPR_results_reorder2.obj', 'rb') as f:\n",
    "    iqspr_results_reorder = pk.load(f)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we look at how the likelihood values of the generated molecules converged to a distribution peaked around 1 (hitting the target property region). The gradient correlates well to the annealing schedule."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the likelihood evolution\n",
    "\n",
    "# set up the min and max boundary for the plots\n",
    "tmp_list = [x.sum(axis = 1, skipna = True).values for x in iqspr_results_reorder[\"loglike\"]]\n",
    "flat_list = np.asarray([item for sublist in tmp_list for item in sublist])\n",
    "y_max, y_min = max(flat_list), min(flat_list)\n",
    "\n",
    "plt.figure(figsize=(10,5))\n",
    "plt.xlim(0,len(iqspr_results_reorder[\"loglike\"]))\n",
    "plt.ylim(y_min,y_max)\n",
    "plt.xlabel('Step')\n",
    "plt.ylabel('Log-likelihood')\n",
    "for i, ll in enumerate(tmp_list):\n",
    "    plt.scatter([i]*len(ll), ll ,s=10, c='b', alpha=0.2)\n",
    "plt.show()\n",
    "#plt.savefig('iqspr_loglike_reorder.png',dpi = 500)\n",
    "#plt.close()\n",
    "\n",
    "y_max, y_min = np.exp(y_max), np.exp(y_min)\n",
    "plt.figure(figsize=(10,5))\n",
    "plt.xlim(0,len(iqspr_results_reorder[\"loglike\"]))\n",
    "plt.ylim(y_min,y_max)\n",
    "plt.xlabel('Step')\n",
    "plt.ylabel('Likelihood')\n",
    "for i, ll in enumerate(tmp_list):\n",
    "    plt.scatter([i]*len(ll), np.exp(ll) ,s=10, c='b', alpha=0.2)\n",
    "plt.show()\n",
    "#plt.savefig('iqspr_like_reorder.png',dpi = 500)\n",
    "#plt.close()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 1-2min to complete!</span>**\n",
    "\n",
    "Next, we plot the evolution of the generated molecules in the target property space."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Range of std. dev.: (25.5185,34.6501)\n",
      "CPU times: user 10.5 s, sys: 5.14 s, total: 15.6 s\n",
      "Wall time: 26.4 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "# re-calculate the property values for the proposed molecules\n",
    "x_mean, x_std, y_mean, y_std = [], [], [], []\n",
    "r_std = []\n",
    "FPs_samples = []\n",
    "for i, smis in enumerate(iqspr_results_reorder[\"samples\"]):\n",
    "    tmp_fps = RDKit_FPs.transform(smis)\n",
    "    FPs_samples.append(tmp_fps)\n",
    "    \n",
    "    tmp1, tmp2 = prd_mdls[\"E\"].predict(tmp_fps)\n",
    "    x_mean.append(tmp1)\n",
    "    x_std.append(tmp2)\n",
    "    \n",
    "    tmp1, tmp2 = prd_mdls[\"HOMO-LUMO gap\"].predict(tmp_fps)\n",
    "    y_mean.append(tmp1)\n",
    "    y_std.append(tmp2)\n",
    "    \n",
    "    r_std.append([np.sqrt(x_std[-1][i]**2 + y_std[-1][i]**2) for i in range(len(x_std[-1]))])\n",
    "\n",
    "# flatten the list for max/min calculation\n",
    "flat_list = [item for sublist in r_std for item in sublist]\n",
    "print('Range of std. dev.: (%.4f,%.4f)' % (min(flat_list),max(flat_list)))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**<span style=\"color: red; \">Warning: the next module may take 1-2min to complete!</span>**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the algorithm spent a longer time exploring the lower internal energy region, which ends up not able to find candidates within our target region in this particular test case. In practice, a certain direction may be preferred to guide the search based on prior knowledge."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 23.7 s, sys: 444 ms, total: 24.2 s\n",
      "Wall time: 24.3 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "import os\n",
    "\n",
    "# prepare a folder to save all the figures\n",
    "ini_dir = './iQSPR_tutorial_prd2/'\n",
    "if not os.path.exists(ini_dir):\n",
    "    os.makedirs(ini_dir)\n",
    "\n",
    "flat_list = np.asarray([item for sublist in r_std for item in sublist])\n",
    "s_max, s_min = max(flat_list), min(flat_list)\n",
    "flat_list = np.concatenate((data_ss[\"E\"],\n",
    "    np.asarray([item for sublist in x_mean for item in sublist])))\n",
    "x_max, x_min = max(flat_list), min(flat_list)\n",
    "flat_list = np.concatenate((data_ss[\"HOMO-LUMO gap\"],\n",
    "    np.asarray([item for sublist in y_mean for item in sublist])))\n",
    "y_max, y_min = max(flat_list), min(flat_list)\n",
    "tmp_beta = iqspr_results_reorder[\"beta\"]\n",
    "\n",
    "for i in range(len(r_std)):\n",
    "    dot_size = 45*((np.asarray(r_std[i])-s_min)/(s_max-s_min)) + 5\n",
    "    \n",
    "    plt.figure(figsize=(5,5))\n",
    "    rectangle = plt.Rectangle((0,0),200,3,fc='y',alpha=0.1)\n",
    "    plt.gca().add_patch(rectangle)\n",
    "    plt.scatter(data_ss[\"E\"], data_ss[\"HOMO-LUMO gap\"],s=3, c='b', alpha=0.2)\n",
    "    plt.scatter(x_mean[i], y_mean[i],s=dot_size, c='r', alpha=0.5)\n",
    "    plt.title('Step: %i (beta = %.3f, %.3f)' % (i,tmp_beta.iloc[i,0],tmp_beta.iloc[i,1]))\n",
    "    plt.xlim(x_min,x_max)\n",
    "    plt.ylim(y_min,y_max)\n",
    "    plt.xlabel('Internal energy')\n",
    "    plt.ylabel('HOMO-LUMO gap')\n",
    "    #plt.show()\n",
    "    plt.savefig(ini_dir+'Step_%02i.png' % i,dpi = 500)\n",
    "    plt.close()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Thank you for using XenonPy-iQSPR. We would appreciate any feedback and code contribution to this open-source project.\n",
    "\n",
    "The sample code can be downloaded at:\n",
    "https://github.com/yoshida-lab/XenonPy/blob/master/samples/iQSPR.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
